﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class getpassword : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
        try
        {
            if (this.txtPassword.Text != this.txtRePassword.Text)
            {
                JavascriptUtil.LoadMessage(UpdatePanel1, false, "Vui lòng nhập password giống nhau");
                return;
            }
            DBDataContext db = LINQUtil.GetDBWriteOnly();
            string userName = this.txtUserName.Text.Trim();
            var us = (from u in db.Users
                      join em in db.Employees on u.EmployeeID equals em.ID
                      where u.Status == 'A'
                      && em.Status == 'A'
                      && u.UserName == userName
                      select new
                      {
                          em.Email,
                          u.ID,
                          u.ActivationCode,
                          u.ActivationExpireDate
                      }).FirstOrDefault();

            if (us != null)
            {
                if (string.IsNullOrEmpty(us.Email))
                {
                    JavascriptUtil.LoadMessage(UpdatePanel1, false, "User name vừa nhập không có email. vui lòng liên hệ admin");
                    return;
                }
                else if (string.IsNullOrEmpty(us.ActivationCode))
                {
                    JavascriptUtil.LoadMessage(UpdatePanel1, false, "Code không tồn tại hoặc đã hết hiệu lực");
                    return;
                }

                else if (us.ActivationExpireDate < DateTime.Now)
                {
                    JavascriptUtil.LoadMessage(UpdatePanel1, false, "Code đã hết hiệu lực.");
                    return;
                }
                else if (this.txtCode.Text.Trim().ToLower() != us.ActivationCode.Trim().ToLower())
                {
                    JavascriptUtil.LoadMessage(UpdatePanel1, false, "Code đã nhập không đúng. vui lòng nhập lại");
                    return;
                }
                else
                {
                 
                    var user = db.Users.FirstOrDefault<User>(a => a.ID == us.ID);
                    user.ActivationCode = "";
                    user.ActivationExpireDate = null;
                    user.Status = 'A';
                    user.Password = Utils.Encrypt(this.txtPassword.Text);
                    user.CreatedBy ="";
                    user.LastUpdatedBy = "";
                    user.CreatedDateTime = DateTime.Now;
                    user.LastUpdatedDateTime = DateTime.Now;
                    db.Update<User>(user);
                    db.SubmitChanges();
                    JavascriptUtil.LoadMessage(UpdatePanel1, true, "Thành công");
                    Session.RemoveAll();
                    Response.Redirect("~/Default.aspx");
                }
            }
            else
            {
                JavascriptUtil.LoadMessage(UpdatePanel1, false, "User name vừa nhập không tồn tại");
            }
        }
        catch (Exception ex)
        {
            JavascriptUtil.LoadMessage(UpdatePanel1, false, "Có lỗi xảy ra!");
            ControlUtil.LogError("-----------------------------");
            ControlUtil.LogError("getpassword-updateStatus");
            ControlUtil.LogError(ex.ToString());
            ControlUtil.LogError("-----------------------------");
        }
    }
}